// RINT Data Manager - Rust implementation
// This library provides the core functionality for the data management system

pub mod config;
pub mod entity;
pub mod error;
pub mod handlers;
pub mod migration;
pub mod services;
pub mod utils;

// Legacy models for handler compatibility
pub mod models;

use std::sync::Arc;

// Re-export commonly used types
pub use config::AppConfig;
pub use error::AppError;
pub use utils::AuthenticatedUser;

#[derive(Clone)]
pub struct AppState {
    pub auth_service: Arc<services::AuthService>,
    pub data_service: Arc<services::DataService>,
    pub storage_service: Arc<services::StorageService>,
    pub dvc_service: Arc<services::DvcService>,
    pub dvc_metadata_service: Arc<services::DvcMetadataService>,
    pub lineage_service: Arc<services::LineageService>,
    pub db: sea_orm::DatabaseConnection,
}
